{{tag>feisty Gutsy développement}}
----

====== Mercurial ( ou hg ) ======

Mercurial est un système de gestion de versions comme [[subversion]] ou [[cvs]].



===== Installation =====
[[apt://mercurial|{{apt.png |Installation automatique}}]]

[[:tutoriel:comment_installer_un_paquet|Installez le paquet]] **mercurial**

Configuration du fichier /etc/mercurial/hgrc pour stocker des infos :

''$ sudo vim /etc/mercurial/hgrc''

''''

''# system-wide mercurial configuration file''

''# See hgrc(5) for more information''

''''

''# User Interface settings''

'' [ui]''

'' username= Your Name <your.email@yourdomain.com>''

'' editor=vim''

'' merge=meld''


Il faut modifier ce fichier à son grès.

===== Utilisation =====

==== Pour initialiser le dossier dans lequel nous allons travailler : ====


''$ cd /chemin/du/project/
$ hg init''

==== Pour récupérer une copie des fichiers de travail s'il existe déjà dans ====


'' $ hg clone http://votredomaine.com:port depot-du-projet''

"depot-du-projet" sert à spécifier le répertoire de destination des fichiers et dossiers qui seront téléchargés. Si aucune destination n'est spécifiée alors la destination aura le même nom que celle du répertoire du dépôt.

==== Pour prendre en compte des nouveaux fichiers dans le dépôt: ====


'' $ hg add''

==== Pour enregistrer les changements effectués sur un fichier: ====


'' $ hg commit''

Attention, il faut bien renseigner les changements sinon les modifications ne seront pas prises en compte.

==== Pour mettre les changements sur un dépôt distant: ====


'' $ hg push http://votredomaine.com:port depot-du-projet''

"depot-du-projet" sert à spécifier le répertoire de destination des fichiers et dossiers qui seront téléchargés. Si aucune destination n'est spécifiée alors la destination aura le même nom que celle du répertoire du dépôt.

==== Pour récupérer les changements sur un dépôts distant: ====


'' $ hg pull http://votredomaine.com:port depot-du-projet''

"depot-du-projet" sert à spécifier le répertoire de destination des fichiers et dossiers qui seront téléchargés. Si aucune destination n'est spécifiée alors la destination aura le même nom que celle du répertoire du dépôt.

==== Pour mettre à jour les sources (similaire à svn update ou cvs update) faites simplement : ====


'' $ hg pull -u''

==== Pour fusionner les changements: ====


''$ hg merge
$ hg commit''

==== Pour créer un patch et exporter: ====


''$ hg commit
$ hg export tip''

==== Pour permettre l'export du dépôt via HTTP avec une interface navigable: ====


''$ hg serve -n "Mon depot" -p <numérodeport>''

==== Fichier .hgignore ====

Mercurial dispose d'un système pour n'inclure que certains type de fichier. Il faut créer un fichier appelé .hgignore à la racine du dépôt. Voici un exemple :

'' syntax: glob''

'' *.orig''

'' *.rej''

'' *~''

'' *.o''

'' tests/*.err''

''''

'' syntax: regexp''

'' .*\#.*\#$''

Pour tester le fichier .hgignore :

'' $ hg status''


----
//Contributeurs: [[utilisateurs:pezzos]], [[utilisateurs:Fabien26]]//